﻿using System;
using System.Linq;
using Quintsys.Data.Model.Entities;
using Quintsys.Data.Model.Enums;

namespace Quintsys.Core.Services
{
    public interface IUserService
    {
        /// <summary>
        ///     Gets the users.
        /// </summary>
        /// <param name="statusFilter">The status filter.</param>
        /// <returns></returns>
        IQueryable<User> GetUsers(StatusFilter statusFilter);

        /// <summary>
        ///     Gets a given user.
        /// </summary>
        /// <param name="predicate">The predicate.</param>
        /// <returns></returns>
        User GetUser(Func<User, bool> predicate);

        /// <summary>
        ///     Saves this instance.
        /// </summary>
        void Save();
    }
}